<h1>Workout Log example explained</h1>

<p>Workout Log demonstrates usage of Cayenne with Vaadin.
  Instead of trying to be usable real world app, it tries to demonstrates
  some examplest how to implement basic CRUD actions for persisted entity
  object, Workout in this case.</p>


<h2>C as Create</h2>

There are two options to create a workout in Workout Log. Either use the
button in button bar or context click an existing row in DB. Workout Log
immediatedly starts to edit new object as user most likely wants to put
some other than default values for it.

<h2>R as Read</h2>

Table is used to present listing of workout objects and all their
relevant details. WorkoutEditor (check next paragraph) can be considered
as a simple view too.

<h2>U as Update</h2>
<p>To update an existing row you have two options. In normal mode if
  you click on the row, it opens an editor window. Editor window may also
  be opened via context menu or button if you have enabled buttons in
  rows.</p>
<p>Another option is to put table into editable mode. Click "Toggle
  table edit mode" button and values become editable in table.</p>

<h2>D as Delete</h2>
<p>To delete a row you have three options. Click delete button in
  editor window, via context menu on table row or if one has action
  buttons enabled, by clicking delete button on row.</p>
